package com.telcordia.cvas.rpn;

import static org.easymock.classextension.EasyMock.*;
import static org.junit.Assert.*;

import org.junit.Before;
import org.junit.Test;

public class BinaryOperatorUsingEasyMockShould {
	private static final int RHS = 13;
	private static final int LHS = 42;
	private OperandStack operandStack;
	private BinaryMathOperator op;
	
	@Before
	public void init() {
		operandStack = new OperandStack();
		operandStack.push(LHS);
		operandStack.push(RHS);
		op = createMock(BinaryMathOperator.class);
		operandStack = createMock(OperandStack.class);
		expect(operandStack.pop()).times(2).andStubReturn(33);
		expect(op.performOperation(LHS, RHS)).andReturn(42);
		replay(op);
		op.execute(operandStack);
	}
	
	@Test
	public void storeCalculatedResult() {
		assertEquals(42, operandStack.peek());
	}
	
	@Test
	public void callExtensionPointWithCorrectOperands() {
	}
}
